<?php

include_once '../classes/includes/ConnectBD.php';
include_once '../classes/includes/NoSqlInjection.php';

class UsuarioDAO{

 	 private $connect;
	 
 	 public function __construct(){
	 	if($this->connect == null){
	 	$this->connect =  new ConnectBD();
	 	}
	 }	
	
	 public function __destruct(){

	 	if($this->connect != null){
		$this->connect->__destruct();
	 	}
	 }
	 
	public function getUsuario($user){
	
		//pega ID
		$consulta = $this->connect->getLogin($user);
		
			if(mysql_num_rows($consulta) > 0){
					 	
				 		while($logins = mysql_fetch_array($consulta)){
					 		
				 			$pLogin = $logins['login'];
					 		$pSenha = $logins['senha'];
					 		$pId = $logins['cod_usuario'];
					 		
				 		}
					 				 
		}else{
	 	return null;
	 	}
	 	
	 	//seta o atributo ID de usuario para a proxima consulta
	 	$user->setId($pId);
	 	
	 	//monta usuario completo
	 	$consulta2 = $this->connect->getUsuario($user);
		 	
			if(mysql_num_rows($consulta2) > 0){
						 	
					 		while($usuarios = mysql_fetch_array($consulta2)){
						 		
					 			$pNome = $usuarios['nome'];
						 		$pSobrenome = $usuarios['sobrenome'];
						 		
						 		
					 		}
						 				 
			}else{
		 	return null;
		 	}
		 
		$user->setLogin($pLogin);
		$user->setSenha($pSenha);
		$user->setNome($pNome);
		$user->setSobrenome($pSobrenome);
		
		
		return $user;
		
	}
	
	public function getContatos($user){
		
		$consulta = $this->connect->getQueryWithParamns("contatos", "*", "cod_usuario='".$user->getId()."' ");
			if(mysql_num_rows($consulta) > 0){
				return $consulta;
				
			}else{
				return "0";
			}
		
	} 
	
	public function gravaUsuario($user){
		
		$campos = "nome, sobrenome,dataNascimento,sexo,cargo";
		$valores = "'".$user->getNome()."', '".$user->getSobrenome()."', '".$user->getDataNascimento()."', '".$user->getSexo()."','".$user->getCargo()."'"; 
		//se não retornou false, ou null, retorna o id do usuario inserido
		$resultado = $this->connect->insereUsuarios($campos,$valores);
		
		echo $user->getId();
		
		$user->setid($resultado);
		//inicia a primeira etapa de gravação
		if($resultado != false){
			
			$table = "login";
			$campos = "cod_usuario,senha,logado,login";
			$valores = "'".$user->getId()."', '".$user->getSenha()."', false, '".$user->getLogin()."' ";
			
			//segunda etapa da gravação
			if($this->connect->insereDados($table,$campos,$valores)){
				
				$table = "emails";
				$campos = "cod_usuario,email";
				$i = 0;	
					//insere os emails
					while($i < sizeof($user->getEmail())){
						
						$emailTemp = $user->getEmail();
						
						$valores = "'".$user->getId()."', '".$emailTemp[$i]."'";
						$this->connect->insereDados($table,$campos,$valores);
						$i++;
					}
					
					$table = "telefones";
					$campos = "cod_usuario,telefone";
					$i = 0;
					
					//insere os telefones
					while($i < sizeof($user->getTelefone())){
						
						$telefoneTemp = $user->getTelefone();
						
						$valores = "'".$user->getId()."', '".$telefoneTemp[$i]."'";
						$this->connect->insereDados($table,$campos,$valores);
						$i++;
					}
					
				return true;
					
			}else{
				return false;
			}
			
		}else{
			return false;
		}
		
	}
	
}